/**
 * 订单相关API
 */

// 获取应用实例
const app = getApp();

/**
 * 创建订单
 * @param {Object} data - 订单数据
 * @param {Object} options - 请求选项
 * @returns {Promise} - 请求Promise
 */
function createOrder(data, options = {}) {
  return app.request.post('/api/orders/', data, options);
}

/**
 * 获取订单列表
 * @param {Object} params - 查询参数
 * @param {string} params.status - 订单状态
 * @param {number} params.page - 页码
 * @param {number} params.page_size - 每页数量
 * @param {Object} options - 请求选项
 * @returns {Promise} - 请求Promise
 */
function getOrderList(params = {}, options = {}) {
  return app.request.get('/api/orders/', params, options);
}

/**
 * 获取订单详情
 * @param {string} orderId - 订单ID
 * @param {Object} options - 请求选项
 * @returns {Promise} - 请求Promise
 */
function getOrderDetail(orderId, options = {}) {
  return app.request.get(`/api/orders/${orderId}/`, {}, options);
}

/**
 * 更新订单状态
 * @param {string} orderId - 订单ID
 * @param {Object} data - 更新数据
 * @param {string} data.status - 订单状态
 * @param {Object} options - 请求选项
 * @returns {Promise} - 请求Promise
 */
function updateOrderStatus(orderId, data, options = {}) {
  return app.request.put(`/api/orders/${orderId}/status/`, data, options);
}

/**
 * 取消订单
 * @param {string} orderId - 订单ID
 * @param {Object} data - 取消原因
 * @param {Object} options - 请求选项
 * @returns {Promise} - 请求Promise
 */
function cancelOrder(orderId, data = {}, options = {}) {
  return app.request.post(`/api/orders/${orderId}/cancel/`, data, options);
}

module.exports = {
  createOrder,
  getOrderList,
  getOrderDetail,
  updateOrderStatus,
  cancelOrder
};